---
title: Vim 文本编辑
description: Vim 是一个功能强大、高度可配置的文本编辑器，专为高效的文本编辑而设计。
---

import { File, Folder } from 'fumadocs-ui/components/files';

## 模式

Vim 有多种操作模式，主要有：

- **正常模式 (Normal Mode):** 默认模式，用于导航和操作文本。
- **插入模式 (Insert Mode):** 用于输入文本。
- **可视模式 (Visual Mode):** 用于选择文本块。
- **命令模式 (Command-Line Mode):** 在底部执行命令。

## 光标移动

| 按键 | 描述 |
| --- | --- |
| `h` | 左移 |
| `j` | 下移 |
| `k` | 上移 |
| `l` | 右移 |
| `w` | 跳到下一个单词的开头 |
| `b` | 跳到上一个单词的开头 |
| `e` | 跳到下一个单词的结尾 |
| `0` | 跳到行首 |
| `$` | 跳到行尾 |
| `gg` | 跳到文件第一行 |
| `G` | 跳到文件最后一行 |
| `zt`| 将光标置于屏幕顶部 |
| `zz`| 将光标置于屏幕中间 |
| `zb`| 将光标置于屏幕底部 |

## 插入模式

| 按键 | 描述 |
| --- | --- |
| `i` | 在光标前插入 |
| `a` | 在光标后追加 |
| `I` | 在行首插入 |
| `A` | 在行尾追加 |
| `o` | 在当前行下方打开新行 |
| `O` | 在当前行上方打开新行 |

## 编辑

| 按键 | 描述 |
| --- | --- |
| `r` | 替换单个字符 |
| `J` | 合并下一行到当前行 |
| `cc` | 更改整行 |
| `cw` | 更改至单词末尾 |
| `c$` | 更改至行尾 |
| `s` | 删除字符并替换文本 |
| `S` | 删除行并替换文本 |
| `u` | 撤销 |
| `Ctrl + r` | 重做 |
| `.` | 重复上一个命令 |

## 复制、剪切和粘贴

| 按键 | 描述 |
| --- | --- |
| `yy` | 复制当前行 |
| `2yy` | 复制 2 行 |
| `yw` | 复制单词 |
| `y$` | 复制到行尾 |
| `p` | 在光标后粘贴 |
| `P` | 在光标前粘贴 |
| `dd` | 剪切当前行 |
| `2dd` | 剪切 2 行 |
| `dw` | 剪切单词 |
| `D` | 剪切到行尾 |
| `d$` | 剪切到行尾 |
| `x` | 剪切字符 |

## 退出

| 命令 | 描述 |
| --- | --- |
| `:w` | 保存文件 |
| `:wq` | 保存并退出 |
| `:q` | 退出 |
| `:q!` | 强制退出（不保存） |

## 搜索和替换

| 命令 | 描述 |
| --- | --- |
| `/pattern` | 向下搜索 `pattern` |
| `?pattern` | 向上搜索 `pattern` |
| `n` | 重复上一次搜索 |
| `N` | 反向重复上一次搜索 |
| `:%s/old/new/g` | 全局替换 |
| `:%s/old/new/gc` | 全局替换前确认 |